Skip to content

chore: setup SDD infrastructure with OpenSpec, CLAUDE.md and PR review hook#101

Merged
rviannaoliveira merged 9 commits intomainfrom
improvement/sdd-setup
Apr 11, 2026
Merged

chore: setup SDD infrastructure with OpenSpec, CLAUDE.md and PR review hook#101
rviannaoliveira merged 9 commits intomainfrom
improvement/sdd-setup

Conversation

@rviannaoliveira
Copy link
Copy Markdown
Contributor

Summary

  • Add CLAUDE.md with architectural rules, coding conventions and component patterns
  • Setup OpenSpec with opsx:propose, opsx:apply, opsx:archive slash commands
  • Add PostToolUse hook that auto-reviews PRs after gh pr create
  • Add PR review checklist rules (architectural, completeness, tests, docs)
  • Add rules for builder registration and external lib abstraction (from PR Image support #78 learnings)

Test plan

  • Verify CLAUDE.md loads correctly in new Claude Code sessions
  • Verify /opsx:propose command works and reads notes.md context
  • Verify PR review hook triggers after gh pr create

Generated with Claude Code

Copy link
Copy Markdown
Contributor Author

@rviannaoliveira rviannaoliveira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: chore/setup SDD infrastructure

Este PR é de infraestrutura/tooling — não adiciona componentes nem altera código da lib. O checklist de componentes (CraftDBuilder, onAction, registro no manager, testes unitários, docs) não se aplica aqui, o que é correto.


✅ O que está bom

CLAUDE.md
Conteúdo correto e completo. As 10 regras arquiteturais, a estrutura de módulos, os padrões de nomenclatura e o checklist de review estão bem escritos e consistentes com o estado atual do projeto.

openspec/changes/add-craftd-image/notes.md
Excelente captura dos aprendizados do PR #78. Os requisitos derivados são precisos:

  • Abstração do imageLoader via injeção (regra 10) ✓
  • Registro em ambos os managers (Compose/KMP e XML) ✓
  • Testes para toContentScale() com visibilidade internal
  • Aviso sobre evitar duplicação entre commonMain/androidMain

Skills e commands
Os skills de Android/Compose adicionados (testing, accessibility, gradle-logic, compose-ui, compose-performance-audit) estão bem definidos e úteis para o workflow de desenvolvimento.


⚠️ Pontos para atenção

1. Duplicação .claude/ vs .github/
Os mesmos arquivos existem em dois lugares:

  • .claude/skills/openspec-*/SKILL.md espelha .github/skills/openspec-*/SKILL.md
  • .claude/commands/opsx/*.md espelha .github/prompts/opsx-*.prompt.md

Se essa duplicação é intencional (compatibilidade com GitHub Copilot / outros clientes), vale documentar brevemente o motivo no PR ou num README nesses diretórios para futuros colaboradores não ficarem confusos.

2. openspec/changes/add-craftd-image/ está incompleto por design
O scaffold tem apenas .openspec.yaml e notes.md — sem proposal.md, design.md ou tasks.md. Isso parece intencional (para ser preenchido via /opsx:propose), mas confirmar que a mudança não vai ficar em estado de rascunho por muito tempo seria bom. Idealmente, o /opsx:propose deveria ser executado logo após o merge.

3. .claude/settings.json não foi possível inspecionar completamente
O diff do settings.json não apareceu no output. Vale garantir que o hook de auto-review configurado não dispare em PRs de bots (o pr.yml já tem essa restrição para generate-tests.yml — o hook local deveria ter a mesma guarda).


📋 Checklist formal (CLAUDE.md)

Item Status
Regras arquiteturais (sem dep entre módulos de plataforma) ✅ N/A — sem código de lib
CraftDBuilder implementado ✅ N/A — sem novo componente
Builder registrado no CraftDBuilderManager ✅ N/A
onAction/fallback coberto ✅ N/A
Testes unitários ✅ N/A — sem código Kotlin
docs/how-to-use/ atualizado ✅ N/A — sem mudança em API pública
Prefixo CraftD, sem valores hardcoded ✅ N/A

Veredicto

PR aprovável. A estrutura está sólida como base para o workflow SDD. Recomendo endereçar a questão da duplicação .claude/ vs .github/ (mesmo que só seja um comentário inline) e executar /opsx:propose add-craftd-image logo após o merge para evitar que o scaffold fique em aberto.

rviannaoliveira and others added 9 commits April 11, 2026 17:37
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add OpenSpec commands and skills (propose, explore, apply, archive)
- Add Android/Compose skills (testing, performance, accessibility, gradle, compose-ui)
- Update CLAUDE.md with folder patterns, code principles and docs rule
- Add GitHub Copilot equivalents (prompts and skills)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add PostToolUse hook that triggers Claude review after gh pr create
- Add review-pr.sh script with checklist based on CLAUDE.md rules
- Add PR review section to CLAUDE.md with review guidelines

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rules derived from PR #78 review comments:
- Rule 9: every new builder must be registered in CraftDBuilderManager
- Rule 10: external library dependencies must be abstracted via interface/parameter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rule belongs in propose.md, not in project-level instructions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

🦙 MegaLinter status: ⚠️ WARNING

Descriptor Linter Files Fixed Errors Warnings Elapsed time
⚠️ KOTLIN detekt yes 139 no 4.22s
⚠️ MARKDOWN markdown-table-formatter 45 1 0 0.33s
⚠️ YAML prettier 18 1 4 0.87s

See detailed report in MegaLinter reports

You could have the same capabilities but better runtime performances if you use a MegaLinter flavor:

MegaLinter is graciously provided by OX Security

@rviannaoliveira rviannaoliveira merged commit 6cc1d0e into main Apr 11, 2026
3 checks passed
@rviannaoliveira rviannaoliveira deleted the improvement/sdd-setup branch April 11, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants